﻿
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

//int main()
//{
//	printf("%s\n", __FILE__);
//	printf("%d\n", __LINE__);
//	printf("%s\n", __DATE__);
//	printf("%s\n", __TIME__);
//	printf("%d\n", __STDC__);
//
//	return 0;
//}

//#define MAX 10
//#define ll long long 
//#define do_forever for(;;)


//#define CASE break;case//甚至有的程序员为了不写break直接这样定义
//int main() {
//	//int arr[MAX] = { 0 };
//	//ll n = 0;
//	//do_forever
//	//{
//	//	printf("hehe\n");
//	//}
//	int n = 5;
//	switch (n)
//	{
//	case 1:
//		//....
//	CASE 2:
//		//....
//	CASE 3:
//		//....
//	CASE 4:
//		//....
//	default:
//		break;
//	}
//
//	return 0;
//}

//#define MAX 1;
//
//int main()
//{
//	if (1)
//		int max = MAX;
//	else
//
//	return 0;
//}

//#define MUL(x,y) ((x)*(y))
//
//int main()
//{
//	int b = MUL(3+1, 5+1);
//	printf("%d\n", b);
//	return 0;
//}


//#define MAX(a,b) (a)>(b)?(a):(b)


//int main()
//{
//	int x = 5;
//	int y = 3;
//	int max = MAX(x++, y++);
//	printf("%d %d %d ", x, y, max);
//	//我们在这里传的是x++ y++，期望是得到 6 4 6
//
//	return 0;
//}

//#define NUM 100
//#define MAX(a,b) ((a)>(b)?(a):(b))
//
//int max(int a, int b)
//{
//	return a > b ? a : b;
//}
//
//int main()
//{
//	int max1 = MAX(50, NUM);
//	int max2 = max(50, NUM);
//	printf("%d\n", max1);
//	printf("%d\n", max2);
//
//	return 0;
//}
//#include<stdlib.h>
//
//#define MALLOC(size,format) (format*)malloc(size*sizeof(format))
//
//int main()
//{
//
//	int* pa= (int*)malloc(10 * sizeof(int));
//	if (pa == NULL)
//	{
//		//...
//	}
//
//	int* pb = MALLOC(10, int);
//	if (pb == NULL)
//	{
//		//...
//	}
//
//	
//
//
//	free(pa);
//	pa = NULL;
//	return 0;
//}


//#include<stdio.h>
//#define PRINT(value,type) printf("the value of " #value " = "#type"\n",value);
//
//int main()
//{
//	int a = 10;
//	float f = 13.0;
//	double lf = 2.0;
//
//
//	PRINT(a, % d);
//	PRINT(f, % f);
//	PRINT(lf, % lf);
//
//
//	return 0;
//}

//int int_max(int a, int b)
//{
//	return a > b ? a : b;
//}

//#define GENERIC_MAX(type) \
//		type type##_max(type a,type b)\
//		{\
//		return (a>b?a:b);\
//		}
//GENERIC_MAX(int)
//GENERIC_MAX(float)
//GENERIC_MAX(double)
//
//int main()
//{
//	int max1 = int_max(3, 5);
//	double max2 = double_max(3.0, 5.0);
//	printf("%d\n%lf\n", max1, max2);
//
//	return 0;
//}


//#define MAX 10
//
//int main()
//{
//	printf("%d\n",MAX);
//	#undef MAX
//	printf("%d\n", MAX);
//	return 0;
//}

//int main()
//{
//	int arr[ARRAY_SIZE] = { 0 };
//	return 0;
////}
//#include <stdio.h>
//#define __DEBUG__
//int main()
//{
//	int i = 0;
//	int arr[10] = { 0 };
//	for (i = 0; i < 10; i++)
//	{
//		arr[i] = i;
//#ifdef __DEBUG__
//		printf("%d\n", arr[i]);//为了观察数组是否赋值成功。
//#endif //__DEBUG__
//	}
//	return 0;
//}

//#include"test.h"
//#include"test.h"
//#include"test.h"
//#include"test.h"
//#include"test.h"
////#include<stdio.h>
//int main()
//{
//
//	return 0;
//}

//#include<iostream>
//#include<algorithm>
//
//using namespace std;
//
//
//int dp[50];
//int w[50];
//int v[50];
//int c[50];
////二进制优化 (也是用一维数组滚动解法解)
//int main()
//{
//	int m, n;
//	cin >> m >> n;
//	int i, j, w1, v1, c;
//	int k = 1, pos = 0;//k表示2的阶乘 pos表示重新划分的组数 
//	for (i = 1; i <= n; i++)
//	{
//		k = 1;
//		cin >> w1 >> v1 >> c;
//		while (k <= c)
//		{
//			w[++pos] = w1 * k;
//			v[pos] = v1 * k;
//			c -= k;
//			k *= 2;
//		}
//		if (c)//说明c并没有被分完
//		{
//			w[++pos] = w1 * c;
//			v[pos] = v1 * c;
//		}
//	}
//	for (i = 1; i <= pos; i++)//pos替换原来的n 
//	{
//		for (j = m; j >= w[i]; j--)
//		{
//			dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
//		}
//	}
//	cout << dp[m] << endl;
//	return 0;
//}
////10 3 2 1 6 6 10 3 3 6 3


//int main()
//{
//	char a = 20000;
//	printf("%c ", a);
//	return 0;
//}


//int main()
//{
//	//int char[20] = "你好";
//	//char* str = "你好，世界";
//	return 0;
//}


//i/*nt main()
//{
//	int n = 0;
//	
//	do {
//		scanf("%d", &n);
//		printf("hehe\n");
//	} while(n);
//	return 0;
//}*/

//#include<iostream>

//using namespace std;
////test 1 谁家孩子跑的最慢
//int main()
//{
//	int every_fa = 15;
//	int li_fa[3];
//	int zhang_fa[3];
//	int wang_fa[3];
//	int li1, li2, wang1, wang2, zhang1, zhang2;
//	for (li1 = 1; li1 <= 7; li1++)
//	{
//		for (li2 = li1 + 1; li2 <= 8; li2++)
//		{
//			if (li1 + li2 + 9 == every_fa)
//			{
//				li_fa[0] = 9;
//				li_fa[1] = li2;
//				li_fa[2] = li1;
//				for (wang1 = 1; wang1 <= 6; wang1++)
//				{
//					for (wang2 = wang1 + 1; wang2 <= 7; wang2++)
//					{
//						if (wang2 + wang1 + 8 == every_fa && li1 != wang1 && li2 != wang2)
//						{
//							wang_fa[0] = 8;
//							wang_fa[1] = wang2;
//							wang_fa[2] = wang1;
//							for (zhang1 = 1; zhang1 <= 5; zhang1++)
//							{
//								for (zhang2 = zhang1 + 1; zhang2 <= 6; zhang2++)
//								{
//									if (zhang1 + zhang2 + 7 == every_fa && zhang1 != li1 && zhang1 != wang1 && zhang2 != li2 && zhang2 != wang2)
//									{
//										zhang_fa[0] = 7;
//										zhang_fa[1] = zhang2;
//										zhang_fa[2] = zhang1;
//
//										for (int i = 0; i <= 2; i++)
//										{
//											cout << zhang_fa[i] << " ";
//										}
//										cout << endl;
//										for (int i = 0; i <= 2; i++)
//										{
//											cout << wang_fa[i] << " ";
//										}
//										cout << endl;
//										for (int i = 0; i <= 2; i++)
//										{
//											cout << li_fa[i] << " ";
//										}
//										cout << endl;
//										if (li_fa[2] == 1)
//										{
//											cout << "The last one arrived to end is a child from family Li." << endl;
//										}
//										if (wang_fa[2] == 1)
//										{
//											cout << "The last one arrived to end is a child from family Wang." << endl;
//										}
//										if (zhang_fa[2] == 1)
//										{
//											cout << "The last one arrived to end is a child from family Zhang." << endl;
//										}
//									}
//								}
//
//						}
//					}
//					}
//				}
//
//			}
//			
//		}
//	}
//	return 0;
//}


//#include <iostream>
//using namespace std;
//int t, x;
//int main()
//{
//	cin >> t;
//	while (t--)
//	{
//		cin >> x;
//		int ret = 0;
//		while (x)
//		{
//			int count = 0, high
//				= 0;
//			int tmp = x;
//			while (tmp)
//			{
//				//计算最右边的1代表的值
//				int low = tmp & -
//					tmp;
//				//如果low中剩余的1就是最后⼀个1
//					//就是最左边的1
//				if (tmp == low)
//				{
//					high = low;
//				}
//				//去掉最右边的1
//				tmp -= low;
//				count++;
//			}
//			if (count % 2 == 0)
//			{
//				x -= high;
//			}
//			else
//			{
//				x ^= 1;
//			}
//			ret++;
//		}
//		cout << ret << endl;
//	}
//	return 0;
//}
//void Swap(int& a, int& b)
//{
//	int z = a;
//	a = b;
//	b = z;
//}+
//
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int& rb = b;
//	int& ra = a;
//	Swap(ra, rb);
//	printf("%d,%d", a, b);
//	return 0;
//}

//#include<iostream>

//// 1、参数类型不同
//int Add(int a, int b)
//{
//	return a + b;
//}
//double Add(double a, double b)
//{
//	return a + b;
//}
 //2、参数个数不同
//void f()
//{
//	printf("%d\n", 1);
//}
//void f(int a)
//{
//	printf("%d\n", 2);
//
//}
//// 3、参数类型顺序不同
//void f(int a, char b)
//{
//	printf("%d\n", 3);
//
//}
//void f(char b, int a)
//{
//	printf("%d\n", 4);
//
//}
//int main()
//{
//	//Add(10, 20);
//	//Add(10.1, 20.2);
//	f();
//	f(10);
//	f(10, 'a');
//	f('a', 10);
//	return 0;
//}


//#include<iostream>
//#include<string>
//#include<algorithm>
//#include<iomanip>
//#include<cmath>
//using namespace std;
//
////test 8
//bool is_primer(int x)
//{
//	if (x <= 1)return false;
//	else {
//		for (int i = 2; i <= sqrt(x); i++) {
//			if (x % i == 0)return false;
//		}
//		return true;
//	}
//}
//bool is_pa(int x)
//{
//	int ret = 0;
//	int tmp = x;
//	while (tmp)
//	{
//		ret += ret * 10 + tmp % 10;
//		tmp /= 10;
//	}
//	return ret == x;
//}
//int main()
//{
//	int n, cnt = 0;
//	cin >> n;
//	for (int i = 11; i <= n; i++)
//	{
//		if (is_primer(i) && is_pa(i))cnt++;
//	}
//	cout << cnt << endl;
//}

//#include<iostream>
//#include<string>
//#include<algorithm>
//#include<iomanip>
//#include<cmath>
//using namespace std;
//
////test 9
//int get_pa(int x)
//{
//	string s = to_string(x);
//	reverse(s.begin(), s.end());
//	return stoi(s);
//}
//bool is_primer(int x)
//{
//	if (x <= 1)return false;
//	else {
//		for (int i = 2; i <= sqrt(x); i++)
//		{
//			if (x % i == 0) return false;
//		}
//		return true;
//	}
//}
//int main()
//{
//	int m, n, flag = 0;
//	cin >> m >> n;
//	for (int i = m; i <= n; i++)
//	{
//		if (flag) cout << ",";
//		if (is_primer(i) && is_primer(get_pa(i)))
//		{
//			cout << i;
//			flag = 1;
//		}
//	}
//	return 0;
//}
//


#include<iostream>
#include<string>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;

////test 17
//int main()
//{
//	string s;
//	int sc_hua[200] = { 0 }, sc_op[200] = { 0 };
//	int hua = 0, op = 0, i = 0, j = 0, m = 0, n = 0, sc = 0,hua1=0,op1=0;
//	while (cin >> s)
//	{
//		for (i = 0; i < s.size(); i++)
//		{
//			if (j % 11 == 0 && j != 0)
//			{
//				cout << hua << ':' << op << endl;
//				hua = 0;
//				op = 0;
//				j = 0;
//			}
//			if (s[i] == 'E')
//			{
//				cout << hua << ':' << op << endl;
//				break;
//			}
//			else if (s[i] == 'W')hua++;
//			else if (s[i] == 'L')op++;
//			j++;
//		}
//		for (m = 0; m < s.size(); m++)
//		{
//			
//			if (n % 21 == 0 && n != 0)
//			{
//					sc_hua[sc] = hua1;
//					sc_op[sc] = op1;
//					hua1=0;
//					op1=0;
//					n=0;;
//					sc++; 
//			}
//			if(s[m] == 'E')
//			{
//				sc_hua[sc] = hua1;
//				sc_op[sc] = op1;
//				sc++;
//				break;
//			}
//				else if(s[m] == 'W')hua1++;
//				else if(s[m] == 'L')op1++;
//				n++;
//		}
//	} 
//	cout << endl;
//	for(i = 0;i < sc; i++)
//	{
//		cout << sc_hua[i] << ":" << sc_op[i] <<endl;
//		
//	}
//	return 0;
//}


#include<iostream>
#include<cmath>
using namespace std;

char str[100010];
int cnt = 0;

void show(int n) {

    int a = 0, b = 0;
    for (int i = 0; i < cnt; i++) {
        if (str[i] == 'W') a++;
        if (str[i] == 'L') b++;

        if ((a >= n || b >= n) && abs(a - b) >= 2) {
            cout << a << ":" << b << endl;
            a = b = 0;
        }
    }

    //新的一轮刚开始，或上一局没有打完
    cout << a << ":" << b << endl;
}

int main() {
    char ch;

    while (cin >> ch && ch != 'E') {
        if (ch == 'W' || ch == 'L') {
            str[cnt++] = ch;
        }
    }

    show(11);
    cout << endl;
    show(21);
}